import Vue from 'vue'
import ElementUI from 'element-ui'
import VueRouter from "vue-router";
// 引入样式文件，否则无样式
import 'element-ui/lib/theme-chalk/index.css'
import '@/assets/style/global.css'
// 以上代码便完成了 Element 的引入。需要注意的是，样式文件需要单独引入。
import App from './App.vue'
import router from './routers/index'
import store from '@/vuex/store'
import { Message } from 'element-ui';
import moment from 'moment';
// 注册全局的面包屑导航
import BreadCrumb from "@/components/commons/BreadCrumb.vue"

// 注册面包屑导航
Vue.component("BreadCrumb",BreadCrumb);
Vue.config.productionTip = false
// 全局注册
Vue.use(ElementUI)
// 将其放到原型对象上
Vue.prototype.$message = Message;
// 将时间格式处理函数放到原型对象上供所有的组件使用
Vue.prototype.$moment = moment;
// 引入echarts
import echarts from 'echarts';
// 将其放到vue原型对象上
Vue.prototype.$echarts=echarts;
// 将vuex的store对象放到vue上
Vue.store=store;
// VueRouter  3版本之后的都是 升级后变为了promise对象，重复点击路由报错 push replace
// 统一处理catch
// 解决编程式路由导航push
const originPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location,onResolve,onReject){
  if(onResolve || onReject) return originPush.call(this,location,onResolve,onReject)
  return originPush.call(this,location).catch(err=>err);
}
// 解决编程式路由导航replace
const originReplace = VueRouter.prototype.replace;
VueRouter.prototype.replace = function replace(location,onResolve,onReject){
  if(onResolve || onReject) return originReplace.call(this,location,onResolve,onReject)
  return originReplace.call(this,location).catch(err=>err);
}
new Vue({
  store,
  router,
  render: h => h(App),
}).$mount('#app')

/*
  当配置文件更改脚手架重新启动

  使用路径别名时需要注意问题
  引入图片时需要特殊注意
  引入图片的方式有两种 一种是背景图  一种是img src
  当使用别名时 该正常替换就正常替换即可 对于图片 在@前加~

  写@后面不自动弹出路径？ Path intellisense插件
*/
/* 
需求：必须登录后才能进入学生信息录入和学生信息查询及成绩分析页面  没有登录不能进入
*/
